Jede Programmiersprache enthält mindestens die folgenden Sprachelemente:
Wir lernen die Entscheidungsanweisung am Beispiel von If ... Then ... Else ... End If kennen. Eine typische Entscheidung formuliert das folgende Sprichwort:
"Kräht der Hahn auf dem Mist, so ändert sich das Wetter oder es bleibt, wie es ist".
Der Syntax von VBA angenähert, lautet das Sprichwort:
If Hahn kräht auf dem Mist Then
Wetter ändert sich
Else
Wetter bleibt, wie es ist
End If
Allgemein lässt sich eine erste Art der Entscheidungsanweisung wie folgt formulieren:
If <Auswahlbedingung> Then
<Dann-Anweisungen>
End If
<Fortsetzung>
Wenn die Auswahlbedingung zutrifft, dann wählt das Programm den Dann-Zweig, sonst fährt es nach End If weiter. Eine zweite Form der If-Anweisung führt den Sonst-Zweig aus, falls die Auswahlbedingung nicht zutrifft:
If <Auswahlbedingung> Then
<Dann-Anweisungen>
Else
<Sonst-Anweisungen>
End If
Die Entscheidungs- und die Wiederholungsanweisung prüfen beide eine Bedingung, bevor sie den Dann- oder Sonst-Zweig wählen bzw. Anweisungen wiederholen. Im Gegensatz zur Entscheidungsanweisung muss die Wiederholungsanweisung (Schleife) aber die Variable(n) der Wiederholungsbedingung in jedem Durchgang ändern, damit die Schleife je verlassen werden kann. Andernfalls kommt es zu einer Endlosschleife: In der folgenden Variante unseres Summenprogramms entfernt sich zum Beispiel die Wiederholungsvariable Zahl mit jedem Durchgang weiter von der Endbedingung <= 1000 und führt deshalb zu einer Endlosschleife:
Zahl = 1 Summe = 0 Do While Zahl <= 1000 Summe = Summe + Zahl Zahl = Zahl - 1 ‘ Zählfehler! Loop
Die allgemeine Form der Wiederholung lautet:
Do While <Ausführungsbedingung>
<Schleifenkörper>
Loop
Wiederholungs- oder Auswahlbedingungen enthalten oft einen Vergleich mit = oder einem anderen Vergleichsoperator (etwa < oder >):
If Name = “Fridolin” Then ...Do While Name = “Fridolin” ...
Leider verwendet VBA das Symbol = nicht nur für Vergleiche, sondern auch für Zuweisungen:
Name = “Fridolin”
Der Vergleich lässt die durch = verbundenen Operanden unverändert. Die Zuweisung ändert hingegen den Inhalt der linken Seite.